]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
LoginManager: Add canRebootToBootLoaderMenu and setRebootToBootLoaderMenu methods
authorHans de Goede <hdegoede@redhat.com>
Wed, 29 Jul 2020 12:22:58 +0000 (14:22 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Thu, 6 Aug 2020 13:14:42 +0000 (15:14 +0200)
Add wrappers for the new logind Manager CanRebootToBootLoaderMenu and
SetRebootToBootLoaderMenu dbus methods.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/199

data/dbus-interfaces/org.freedesktop.login1.Manager.xml
js/misc/loginManager.js

index 647afc6cfb8a3183c67f6ce4dfb0c2876394351f..f40d498dcc1cde94e0d11afbda97d3eb3e31afae 100644 (file)
     <method name="ListSessions">
       <arg name="sessions" type="a(susso)" direction="out"/>
     </method>
+    <method name="CanRebootToBootLoaderMenu">
+      <arg type="s" direction="out"/>
+    </method>
+    <method name="SetRebootToBootLoaderMenu">
+      <arg type="t" direction="in"/>
+    </method>
     <signal name="PrepareForSleep">
       <arg type="b" direction="out"/>
     </signal>
index 0f9ee1703fdd8cabadba8e49f43062a7b4c37fcd..55e928986cd8596eadfc89b8accdf76b0c4a1789 100644 (file)
@@ -158,6 +158,23 @@ var LoginManagerSystemd = class {
         });
     }
 
+    canRebootToBootLoaderMenu(asyncCallback) {
+        this._proxy.CanRebootToBootLoaderMenuRemote((result, error) => {
+            if (error) {
+                asyncCallback(false, false);
+            } else {
+                const needsAuth = result[0] === 'challenge';
+                const canRebootToBootLoaderMenu = needsAuth || result[0] === 'yes';
+                asyncCallback(canRebootToBootLoaderMenu, needsAuth);
+            }
+        });
+    }
+
+    setRebootToBootLoaderMenu() {
+        /* Parameter is timeout in usec, show to menu for 60 seconds */
+        this._proxy.SetRebootToBootLoaderMenuRemote(60000000);
+    }
+
     listSessions(asyncCallback) {
         this._proxy.ListSessionsRemote((result, error) => {
             if (error)
@@ -203,6 +220,13 @@ var LoginManagerDummy = class {
         asyncCallback(false, false);
     }
 
+    canRebootToBootLoaderMenu(asyncCallback) {
+        asyncCallback(false, false);
+    }
+
+    setRebootToBootLoaderMenu() {
+    }
+
     listSessions(asyncCallback) {
         asyncCallback([]);
     }